// api.js - 后端接口请求模块

// 基础URL - 根据你的后端地址调整
const BASE_URL = 'http://127.0.0.1:8080/bbmall/api/analysis';

// 获取昨天日期的函数
function getYesterdayDate() {
    const yesterday = new Date();
    yesterday.setDate(yesterday.getDate() - 1);
    return yesterday.toISOString().split('T')[0]; // 格式: YYYY-MM-DD
}

// 统一的请求函数
async function fetchData(endpoint) {
    try {
        // 自动添加昨天的日期参数
        const dateTime = getYesterdayDate();
        const url = `${BASE_URL}${endpoint}?dateTime=${dateTime}`;
        
        console.log(`正在请求: ${url}`);
        const response = await fetch(url);
        
        if (!response.ok) {
            throw new Error(`网络请求失败: ${response.status}`);
        }
        
        const data = await response.json();
        console.log('API响应:', data);
        
        if (data.success) {
            return data.data;
        } else {
            throw new Error(data.message || '获取数据失败');
        }
    } catch (error) {
        console.error('API请求错误:', error);
        alert(`数据加载失败: ${error.message}`);
        return null;
    }
}

// 创建全局 api 对象 - 保持原有调用方式不变
window.api = {
    // 获取销售数据
    getSalesInfo: () => fetchData('/salesInfo'),
    
    // 获取会员数据
    getMemberInfo: () => fetchData('/memberInfo'),
    
    // 获取商店数据
    getStoreInfo: () => fetchData('/storeInfo')
};

// // 测试函数
// async function testAPI() {
//     console.log('=== 开始测试API连接 ===');
    
//     try {
//         const salesData = await window.api.getSalesInfo();
//         console.log('销售数据:', salesData);
        
//         if (salesData) {
//             console.log('✅ API连接成功!');
            
//             // 确保销售分析页面是激活状态
//             if (!document.getElementById('salesTab').classList.contains('active')) {
//                 // 如果不是激活状态，先切换到销售分析页面
//                 switchTab('sales');
//             }
            
//             // 更新页面数据
//             if (window.dataHandler && window.dataHandler.updateSalesData) {
//                 window.dataHandler.updateSalesData(salesData);
                
//                 // 确保图表已初始化
//                 if (!chartInstances['categoryChart']) {
//                     console.log('图表未初始化，正在初始化...');
//                     initializeSalesCharts(salesData);
//                 } else {
//                     // 更新图表数据
//                     if (window.dataHandler.updateSalesCharts) {
//                         window.dataHandler.updateSalesCharts(salesData);
//                     }
//                 }
                
//                 console.log('✅ 数据和图表更新成功!');
//                 alert('API连接成功！数据和图表已更新到页面。');
//             } else {
//                 alert('API连接成功！但数据处理器未加载。');
//             }
//         } else {
//             console.log('❌ API连接失败，请检查后端服务是否启动');
//             alert('API连接失败，请检查后端服务是否启动在127.0.0.1:8080');
//         }
//     } catch (error) {
//         console.error('测试过程中出错:', error);
//         alert('测试出错: ' + error.message);
//     }
    
//     console.log('=== 测试结束 ===');
// }

// // 添加一个按钮来手动测试
// function addTestButton() {
//     const testBtn = document.createElement('button');
//     testBtn.textContent = '测试API连接';
//     testBtn.style.position = 'fixed';
//     testBtn.style.top = '10px';
//     testBtn.style.left = '10px';
//     testBtn.style.zIndex = '1000';
//     testBtn.style.padding = '10px';
//     testBtn.style.background = '#4fc3f7';
//     testBtn.style.color = 'white';
//     testBtn.style.border = 'none';
//     testBtn.style.borderRadius = '5px';
//     testBtn.style.cursor = 'pointer';
    
//     testBtn.addEventListener('click', testAPI);
    
//     document.body.appendChild(testBtn);
// }

// // 页面加载时添加测试按钮
// window.addEventListener('load', addTestButton);

console.log('API模块已加载');